High performance Digital Signal Processors (DSP) require the flexibility to operate on many different formats of data. Data may be integer fixed point data—signed or unsigned, real or complex, 32-bit, 16-bit or 8-bit. Or it may be floating point data—single-precision real, single-precision complex, or double precision. In the prior art, separate computational units were required to do fixed or floating point arithmetic, and to process real or complex data formats.